#include <iostream>

#include "my_array.h"

using namespace std;

int main(int argc, char const *argv[])
{
    My_Array my_array;
    My_Array ma;


    // my_array 调用初始化操作
    my_array.init_my_array();

    my_array.add_element(1);
    my_array.add_element(3);
    my_array.add_element(1);
    my_array.add_element(7);
    my_array.add_element(1);
    my_array.add_element(3);

    my_array.show();

    cout << "max_value : " << my_array.max_value() << endl;
    cout << "min_value : " << my_array.min_value() << endl;
    cout << "avg_value : " << my_array.avg_value() << endl;

    cout << "元素 1 第一次出现的下标位置：" << my_array.find(1) << endl;

    cout << "元素 1 最后一次出现的下标位置：" << my_array.rfind(1) << endl;

    cout << "----------01---------" <<endl;

    //添加指定元素到指定下标位置
    my_array.add_element(6,9);
    cout << "添加元素到指定下标位置后的数组：" ;
    my_array.show();

    cout << "----------02---------" <<endl;

    //删除指定下标元素
    int ret = my_array.remove(1);
    if(0 == ret)
    {
        cout << "当前下标位置大于数组最大下标位置~~~" << endl;
    }
    else
    {
        cout << "被删除的元素为：" << ret << endl;
    }
    cout << "删除指定下标元素后的数组为：";
    my_array.show();

    cout << "----------03---------" <<endl;

    //删除所有指定目标元素
    my_array.remove_all(1);
    cout << "删除所有 1 元素后的数组为：";
    my_array.show();

    cout << "qnwedlifabvpaweirvhapou" <<endl;

    my_array.add_element(1);
    my_array.add_element(9);
    my_array.add_element(4);
    my_array.add_element(2);

    // add_all( ma);

    my_array.remove(4);
    cout << "----------04---------" <<endl;

    my_array.show();
    cout << "---------05---------" <<endl;
    cout << "----------06---------" <<endl;


    my_array.remove_all(90);
    
    cout << "----------07---------" <<endl;


    my_array.show();

    my_array.remove_all(2,5);
    cout << "----------08---------" <<endl;

    my_array.show();

    my_array.replace(2,1333);
    cout << "----------09---------" <<endl;

    my_array.show();

    my_array.replace_all(1333,321);
    cout << "----------10---------" <<endl;

    my_array.show();

    my_array.reveser();
    cout << "----------11---------" <<endl;

    my_array.show();
    
    cout << "----------12---------" << endl << my_array.at(7) << endl;

    my_array.sort_desc();
    cout << "----------13---------" <<endl;

    my_array.show();

    my_array.sort_asc();
    cout << "----------14---------" <<endl;

    my_array.show();

    return 0;
}
